home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / CTE22 / SINGLE.INF < prev   
INI File  |  1996-07-31  |  33KB  |  1,227 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;       E22XX network card and driver SETUP INF file.
  6. ;   For Single chip card only!!!!
  7. ; History:
  8. ; v1.01 Release with help
  9. ;v1.02  Uses separate oemsetup.inf files for Single/Dual chip cards
  10. ;v1.03  Fixed Help File Bug -- Did not always load properly
  11. ;***********************************************************************
  12.  
  13. [Identification]
  14.     OptionType = NetAdapter
  15.  
  16. [PlatformsSupported]
  17.     ISA
  18.     EISA
  19.  
  20. [Options]
  21.     E22XX
  22.  
  23. ;***********************************************************************
  24. ; CONSTANTS FOR USING DIALOGS
  25. ;***********************************************************************
  26.  
  27. [FileConstants]
  28.  
  29.  
  30. GenericInfVersion  = " v1.03"
  31. GenericAdapterName = "Cabletron E22XX (9000939) Adapter"
  32. GenericDriverName  = "Cabletron E22XX Driver"
  33. GenericSysName     = "E22N3.SYS"
  34. GenericName        = "E22XX"
  35.  
  36. ;
  37. ;  File names, etc.
  38. ;
  39. UtilityInf      = "UTILITY.INF"
  40. ParamInf        = "NCPARAM.INF"
  41. subroutineinf   = "SUBROUTN.INF"
  42. SoftwareType    = "driver"
  43. Exit_Code       = 0
  44.  
  45. ;
  46. ; EventLog Message File
  47. ;
  48. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  49. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  50.  
  51. ; Product Info
  52. ;
  53. Manufacturer    = "Microsoft"
  54. ProductMajorVersion     = "3"
  55. ProductMinorVersion     = "1"
  56. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  57.  
  58. ;
  59. ; Software
  60. ;
  61. ProductSoftwareName     = "E22XX"
  62. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  63. NetRuleSoftwareType     = "E22N3Sys ndisDriver E22XXDriver"
  64.  
  65. NetRuleSoftwareUse      = $(SoftwareType)
  66. NetRuleSoftwareBindForm = """E22N3Sys"" yes no container"
  67.  
  68. NetRuleSoftwareClass    = {"E22XXDriver basic"}
  69. NetRuleSoftwareBindable = {"E22XXDriver E22XXAdapter non exclusive 100"}
  70. ;
  71. ; Hardware
  72. ;
  73. ProductHardwareName        = "E22XX"
  74. NetRuleHardwareType        = "E22XX E22XXAdapter"
  75. NetRuleHardwareBindForm    = " yes yes container"
  76. NetRuleHardwareClass       = {"E22XXAdapter basic"}
  77.  
  78. ;
  79. ; Registry Key
  80. ;
  81. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  82. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  83.  
  84. [GeneralConstants]
  85. ;
  86. ;  Program flow control variables.
  87. ;
  88. from      = ""
  89. to        = ""
  90. ;
  91. ;  Return codes; Exit_Code is set to one of these
  92. ;
  93. ExitCodeOk     = 0
  94. ExitCodeCancel = 1
  95. ExitCodeFatal  = 2
  96.  
  97. KeyNull         = ""
  98. MAXIMUM_ALLOWED   = 33554432
  99. RegistryErrorIndex = NO_ERROR
  100. KeyProduct      = ""
  101. KeyParameters   = ""
  102.  
  103. TRUE            = 1
  104. FALSE           = 0
  105. NoTitle            = 0
  106.  
  107. ExitState   = "Active"
  108. OldVersionExisted = $(FALSE)
  109.  
  110. DriverPath      = $(!STF_NTPATH)\drivers
  111.  
  112. [date]
  113.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  114.     ; Minute, Second }
  115.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  116.  
  117. [Identify]
  118.     ;
  119.     ;
  120.     read-syms Identification
  121.  
  122.     set Status     = STATUS_SUCCESSFUL
  123.     set Identifier = $(OptionType)
  124.     set Media      = #("Source Media Descriptions", 1, 1)
  125.  
  126.     Return $(Status) $(Identifier) $(Media)
  127.  
  128. [ReturnOptions]
  129.     ;
  130.     ;
  131.     set Status        = STATUS_FAILED
  132.     set OptionList     = {}
  133.     set OptionTextList = {}
  134.  
  135.     ;
  136.     ; Check if the language requested is supported
  137.     ;
  138.     set LanguageList = ^(LanguagesSupported, 1)
  139.     Ifcontains(i) $($0) in $(LanguageList)
  140.     ;
  141.     ; Check if the platforms requested is supported
  142.     ;
  143.     ifstr(i) $($1) == ""
  144.             goto returnoptions
  145.     endif
  146.  
  147.     set PlatformList = ^(PlatformsSupported, 1)
  148.     Ifcontains(i) $($1) in $(PlatformList)
  149.             goto returnoptions
  150.     else
  151.             set Status = STATUS_NOTSUPPORTED
  152.             goto finish_ReturnOptions
  153.     endif
  154.     else
  155.         set Status = STATUS_NOLANGUAGE
  156.         goto finish_ReturnOptions
  157.     endif
  158.  
  159.     ;
  160.     ; form a list of all the options and another of the text representing
  161.     ;
  162.  
  163. returnoptions = +
  164.     set OptionList     = ^(Options, 1)
  165.     set OptionTextList = ^(OptionsText$($0), 1)
  166.     set Status         = STATUS_SUCCESSFUL
  167.  
  168. finish_ReturnOptions = +
  169.     Return $(Status) $(OptionList) $(OptionTextList)
  170.  
  171. [InstallOption]
  172.     ;
  173.     ; Set default values for
  174.     ;
  175.     set Status   = STATUS_FAILED
  176.     ;
  177.     ; extract parameters
  178.     ;
  179.     set Option   = $($1)
  180.     set SrcDir   = $($2)
  181.     set AddCopy  = $($3)
  182.     set DoCopy   = $($4)
  183.     set DoConfig = $($5)
  184.  
  185.     ;
  186.     ; Check if the language requested is supported
  187.     ;
  188.     set LanguageList = ^(LanguagesSupported, 1)
  189.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  190.     Return STATUS_NOLANGUAGE
  191.     endif
  192.  
  193.     set-subst LF = "\n"
  194.  
  195.     read-syms GeneralConstants
  196.     read-syms FileConstants
  197.  
  198.     read-syms DialogConstants$(!STF_LANGUAGE)
  199.     ifstr(i) $(!NTN_Origination) == "NCPA"
  200.     set Continue = $(OK)
  201.     endif
  202.     read-syms FileConstants$(!STF_LANGUAGE)
  203.  
  204.     detect date
  205.  
  206.     set-title  $(FunctionTitle)
  207.  
  208.     set to   = Begin
  209.     set from = Begin
  210. ;
  211. ;  Assume all is well.
  212. ;
  213.     set CommonStatus = STATUS_SUCCESSFUL
  214.  
  215.     EndWait
  216.  
  217. ;
  218. ;   Set up the operation-mode-based variables and gaily welcome
  219. ;   the user.  If the "install mode" variable is improperly set,
  220. ;   assume this is a new installation.
  221. ;
  222.  
  223. Begin = +
  224.     SetHelpFile "E22.hlp" 0 0
  225.     Set ActivateDetection = FALSE
  226.  
  227.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  228.     set StartLabel = removeadapter
  229.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  230.     set StartLabel = UpgradeSoftware
  231.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  232.     set StartLabel = bindingadapter
  233.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  234. ;        set ActivateDetection = TRUE
  235.     set StartLabel = configureadapter
  236.     ;
  237.     ;   You cannot config the software component
  238.     ;
  239.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  240.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  241.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  242.         goto ShellCodeError
  243.         endif
  244.         set Error = $($R0)
  245.         set from = end
  246.         set to = end
  247.         goto nonfatalinfo
  248.     endif
  249.     else
  250. ;        set ActivateDetection = TRUE
  251.     set StartLabel = installadapter
  252.     set OEM_ABANDON_OPTIONS = {}
  253.     set OEM_ABANDON_SOFTWARE = FALSE
  254.     set OEM_ABANDON_ON = TRUE
  255.     endif
  256.  
  257.  
  258.  
  259.     ;  set the default values
  260.  
  261.     ; IOBase Address = 0x2A0
  262.     set IOBaseAddrValue1 = *($(IOBaseAddrList1), 6)
  263.  
  264.     ; IOBase Address = 0x2C0
  265.     ;LRW set IOBaseAddrValue2 = *($(IOBaseAddrList2), 7)
  266.  
  267.     ; DMA = 5
  268.     ;LRW set DMAValue = *($(DMAList), 1)
  269.  
  270.     set CardTypeValue = 0
  271.  
  272.     Set from = $(fatal)
  273.     Set to = $(fatal)
  274.     Goto $(StartLabel)
  275.  
  276. ;-----------------------------------------------
  277. ; Installation Section
  278. ;-----------------------------------------------
  279.  
  280. installadapter = +
  281. ;
  282. ;   First, check whether the same version of the software exists
  283. ;
  284.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  285.  
  286.     Ifstr $(KeyProduct) != $(KeyNull)
  287.     ;
  288.     ; Same version already existed in the local machine
  289.     ; Popup the dialog and ask the user whether he wants to continue
  290.     ;
  291.     CloseRegKey $(KeyProduct)
  292.  
  293.     ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  294.        ;
  295.        ; Cannot Install the same software again
  296.        ;
  297.        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  298.            $(ProductVersion)
  299.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  300.            goto ShellCodeError
  301.        endif
  302.  
  303.        goto end
  304.     else
  305.        ;
  306.        ; Add a new adapter card?
  307.        ;
  308.        Shell $(UtilityInf), CardExistedDlg
  309.  
  310.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  311.            goto ShellCodeError
  312.        endif
  313.  
  314.        ifstr(i) $($R1) != "OK"
  315.            goto end
  316.        endif
  317.        set OldVersionExisted = $(TRUE)
  318.     endif
  319.     endif
  320.  
  321. ;
  322. ;  dll load addition
  323. ;
  324.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  325.  
  326.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  327.     Goto ShellCodeError
  328.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  329.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  330.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  331.         goto ShellCodeError
  332.     endif
  333.     set Error = $($R0)
  334.     Goto fatal
  335.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  336.     Goto successful
  337.     Endif
  338.  
  339.     Set SrcDir = $($R1)
  340.  
  341.     SetHelpFile "E22.hlp" 0 0
  342.  
  343.     install "Install-Dll"
  344.  
  345.     goto adaptersetup
  346.  
  347. ;-----------------------------------------------
  348. ; Configuration Section
  349. ;-----------------------------------------------
  350. ;
  351. ;   Get the current values of all the parameters
  352. ;
  353. configureadapter = +
  354.     Ifstr $(KeyProduct) == $(KeyNull)
  355.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  356.     Ifstr $(KeyProduct) == $(KeyNull)
  357.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  358.         goto fatalregistry
  359.     Endif
  360.     Endif
  361.  
  362.     ;
  363.     ; Get the other parameters;  they're attached to the service parameters key
  364.     ;
  365.     Shell $(UtilityInf) FindService, $(KeyProduct)
  366.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  367.     Goto ShellCodeError
  368.     Endif
  369.     Ifstr(i) $($R0) != NO_ERROR
  370.     Goto fatalregistry
  371.     endif
  372.  
  373.     Set KeyParameters = $($R2)
  374.  
  375.     ;
  376.     ;  We don't need the services key, so close it.
  377.     ;
  378.     CloseRegKey $($R1)
  379.  
  380.     Ifstr $(KeyParameters) == $(KeyNull)
  381.     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  382.     goto fatalregistry
  383.     endif
  384.  
  385.     set OldVersionExisted = $(TRUE)
  386.  
  387.     set ValueName = ""
  388.     set ValueData = ""
  389.     set ValueStr  = ""
  390.     set ValueList = {}
  391.  
  392.  
  393.     ;
  394.     ; Get the old values
  395.     ;
  396.     EnumRegValue $(KeyParameters) ValueList
  397.  
  398.     ForListDo $(ValueList)
  399.     set ValueItem = $($)
  400.     set ValueName = *($(ValueItem),1)
  401.     set ValueData = *($(ValueItem),4)
  402.     ifstr(i) $(ValueName) == "IoAddress"
  403.         set IOBaseAddrIndex1 = $(ValueData)
  404.     ;LRW else-ifstr(i) $(ValueName) == "IoAddress2"
  405.     ; LRW   set IOBaseAddrIndex2 = $(ValueData)
  406.     ;LRW else-ifstr(i) $(ValueName) == "DMAChannel"
  407.     ;LRW    set DMAIndex = $(ValueData)
  408.     else-ifstr(i) $(ValueName) == "NetworkAddress"
  409.         set NetworkAddress = $(ValueData)
  410.     endif
  411.  
  412.     EndForListDo
  413.  
  414.     set IOBaseAddrValue1 = *($(IOBaseAddrList1), ~($(IOBaseAddrValues1),$(IOBaseAddrIndex1)))
  415.     ifstr(i) $(IOBaseAddrValue1) == ""
  416.     set IOBaseAddrValue1 = *($(IOBaseAddrList1), 6)
  417.     endif
  418.  
  419. ;LRW    set IOBaseAddrValue2 = *($(IOBaseAddrList2),
  420. ;LRW ~($(IOBaseAddrValues2),$(IOBaseAddrIndex2)))
  421. ;LRW    ifstr(i) $(IOBaseAddrValue2) == ""
  422. ;LRW    set IOBaseAddrValue2 = *($(IOBaseAddrList2), 7)
  423. ;LRW    endif
  424.  
  425. ;LRW    set DMAValue = *($(DMAList), ~($(DMAValues),$(DMAIndex)))
  426. ;LRW    ifstr(i) $(DMAValue) == ""
  427. ;LRW    set DMAValue = *($(DMAList), 1)
  428. ;LRW    endif
  429.  
  430. ;  Save the settings as they were read from the Registry.
  431.  
  432. ;    Shell $(ParamInf) Param_SaveValues
  433. ;    Set CurrParamSettings = $($R0)
  434. ;
  435. ;   Put up the adapter configuration dialog if necessary.
  436. ;
  437. ;   Note that $(CurrParamSettings) has the old known parameter values.
  438. ;
  439. adaptersetup = +
  440.  
  441.  
  442. ;    Shell "" DebugConfiguration "before displaying dialog"
  443.  
  444.     Set from = adapteroptions
  445.  
  446.  
  447. adapteroptions = +
  448.  
  449.  
  450.     LoadLibrary "Disk 1" $(DialogDllName) hLib
  451.  
  452.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  453.  
  454.     ui start "InputDlg"  $(hLib)
  455.  
  456.     set ExitButton      = $(ButtonPressed)
  457.  
  458.     FreeLibrary $(hLib)
  459.  
  460.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  461.         set IOBaseAddrIndex1 = $(Combo1Out)
  462.         ;LRW set IOBaseAddrIndex2 = $(Combo2Out)
  463.         ;LRW set DMAIndex = $(Combo3Out)
  464.         set NetworkAddress = *($(EditTextOut),1)
  465.         set ExitButton      = $(ButtonPressed)
  466.  
  467.  
  468.         ui pop 1
  469. ;               goto nextstep
  470.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  471.         set CommonStatus = STATUS_USERCANCEL
  472.         ui pop 1
  473.         goto end
  474.     else
  475.         ;
  476.         ; Unknow command
  477.         ;
  478.         ui pop 1
  479.  
  480.         goto end
  481.     endif
  482.  
  483. ;
  484. ;   If installing, go create the necessary keys;
  485. ;   if configuring, they're already open.
  486. ;
  487. skipoptions =+
  488.  
  489.     ifint $(OldVersionExisted) == $(TRUE)
  490.     ifstr(i) $(!NTN_InstallMode) == configure
  491.         goto writeparameters
  492.     endif
  493.     endif
  494.     StartWait
  495.     ;
  496.     ; Add Software Component
  497.     ;
  498.     ifint $(OldVersionExisted) == $(FALSE)
  499.  
  500.     ifstr(i) $(!NTN_InstallMode) == "install"
  501.        Ifstr(i) $(DoCopy) == "YES"
  502.  
  503.           Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  504.  
  505.           Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  506.           Goto ShellCodeError
  507.           Else-Ifstr(i) $($R0) == STATUS_FAILED
  508.           Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  509.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  510.               goto ShellCodeError
  511.           endif
  512.           set Error = $($R0)
  513.           Goto fatal
  514.           Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  515.           Goto successful
  516.           Endif
  517.  
  518.           Set SrcDir = $($R1)
  519.  
  520.        Endif
  521.  
  522.        install "Install-Option"
  523.  
  524.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  525.           Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  526.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  527.           goto ShellCodeError
  528.           endif
  529.           set Error = $($R0)
  530.           goto fatal
  531.        endif
  532.     endif
  533.  
  534.  
  535.  
  536.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  537.         $(ProductSoftwareName), +
  538.         $(ProductSoftwareName), +
  539.         $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  540.         $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  541.         $(NetEventDLL)
  542.  
  543.     Set OEM_ABANDON_SOFTWARE = TRUE
  544.  
  545.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  546.         goto ShellCodeError
  547.     endif
  548.  
  549.     set RegistryErrorIndex = $($R0)
  550.     set KeyProduct      = $($R1)
  551.     Set SoftNetRulesKey = $($R2)
  552.     CloseRegKey $($R3)
  553.     CloseRegKey $($R4)
  554.     CloseRegKey $($R5)
  555.  
  556.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  557.         EndWait
  558.         CloseRegKey $(KeyProduct)
  559.         CloseRegKey $(SoftNetRulesKey)
  560.         goto fatalregistry
  561.     endif
  562.  
  563.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  564.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  565.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  566.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  567.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  568.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  569.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  570.  
  571.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  572.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  573.         goto ShellCodeError
  574.     endif
  575.  
  576.     set RegistryErrorIndex = $($R0)
  577.  
  578.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  579.         EndWait
  580.         CloseRegKey $(KeyProduct)
  581.         CloseRegKey $(SoftNetRulesKey)
  582.         goto fatalregistry
  583.     endif
  584.  
  585.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  586.                 {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  587.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  588.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  589.                 {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  590.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  591.  
  592.     Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  593.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  594.         goto ShellCodeError
  595.     endif
  596.  
  597.     set RegistryErrorIndex = $($R0)
  598.  
  599.     CloseRegKey $(KeyProduct)
  600.     CloseRegKey $(SoftNetRulesKey)
  601.  
  602.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  603.         EndWait
  604.         goto fatalregistry
  605.     endif
  606.     endif
  607. ;
  608. ;   Create the HARDWARE\Netcard region and its corresponding service
  609. ;
  610.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  611.  
  612.     ifint $($R4) != -1
  613.     Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  614.     endif
  615.  
  616.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  617.     goto ShellCodeError
  618.     endif
  619.  
  620.     set RegistryErrorIndex = $($R0)
  621.  
  622.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  623.     EndWait
  624.     CloseRegKey $($R1)
  625.     CloseRegKey $($R2)
  626.     CloseRegKey $($R3)
  627.     goto fatalregistry
  628.     endif
  629.  
  630.     set KeyParameters = $($R3)
  631.     set KeyAdapterRules = $($R2)
  632.     set AdapterNumber = $($R4)
  633.  
  634.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  635.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  636.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  637.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  638.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  639.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  640.  
  641.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  642.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  643.     goto ShellCodeError
  644.     endif
  645.  
  646.     CloseRegKey $($R1)
  647.  
  648.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  649.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  650.  
  651.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  652.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  653.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  654.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  655.  
  656.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  657.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  658.     goto ShellCodeError
  659.     endif
  660.  
  661.     set RegistryErrorIndex = $($R0)
  662.  
  663.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  664.     EndWait
  665.     CloseRegKey $(KeyParameters)
  666.     CloseRegKey $(KeyAdapterRules)
  667.     goto fatalregistry
  668.     endif
  669.  
  670.     CloseRegKey $(KeyAdapterRules)
  671.  
  672.     goto writeparameters
  673. ;
  674. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  675. ;
  676. writeparameters = +
  677.     Shell $(UtilityInf), GetBusTypeNum
  678.     set BusTypeNum = $($R1)
  679.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  680.     goto ShellCodeError
  681.     endif
  682.  
  683. ;    Set NewValueList = {{Transceiver,$(NoTitle),$(!REG_VT_DWORD),$(TransceiverValue)},+
  684. ;                       {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  685. ;                       {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  686. ;                       {MemoryMapped,$(NoTitle),$(!REG_VT_DWORD),$(MappedValue)},+
  687. ;                       {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  688. ;                       {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)}}
  689. ;
  690.  
  691.     set IOBaseAddrValue1 = *($(IOBaseAddrValues1), ~($(IOBaseAddrList1),$(IOBaseAddrIndex1)))
  692.  
  693. ;LRW    set IOBaseAddrValue2 = *($(IOBaseAddrValues2), ;LRW~($(IOBaseAddrList2),$(IOBaseAddrIndex2)))
  694.  
  695. ;LRW    set DMAValue = *($(DMAValues), ~($(DMAList),$(DMAIndex)))
  696.  
  697.     set NetworkAddress = *($(EditTextOut),1)
  698.  
  699.  
  700.     set NewValueList = {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),0},+
  701.         {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  702.         {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  703.         {IoAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue1)},+
  704.         ;LRW {IoAddress2,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue2)},+
  705.         ;LRW {DMAChannel,$(NoTitle),$(!REG_VT_DWORD),$(DMAValue)},+
  706.         {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)}}
  707.  
  708.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  709.  
  710.     CloseRegKey $(KeyParameters)
  711.  
  712.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  713.     goto ShellCodeError
  714.     endif
  715.  
  716.     set RegistryErrorIndex = $($R0)
  717.  
  718.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  719.     goto fatalregistry
  720.     endif
  721.  
  722.     EndWait
  723.  
  724.     goto successful
  725.  
  726. ;-----------------------------------------------
  727. ; Binding section
  728. ;-----------------------------------------------
  729. bindingadapter =+
  730.     set Error = "Binding: Sorry, not yet implemented."
  731.     goto fatal
  732.  
  733. ;-----------------------------------------------
  734. ; Removeadapter section
  735. ;-----------------------------------------------
  736.  
  737. removeadapter = +
  738.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  739.     ; Remove Software Component
  740.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  741.         $(ProductSoftwareName)
  742.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  743.         goto ShellCodeError
  744.     endif
  745.  
  746.     set RegistryErrorIndex = $($R0)
  747.  
  748.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  749.         goto fatalregistry
  750.     endif
  751.     else
  752.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  753.         $(ProductSoftwareName), $(!NTN_RegBase)
  754.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  755.         goto ShellCodeError
  756.     endif
  757.  
  758.     set RegistryErrorIndex = $($R0)
  759.  
  760.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  761.         goto fatalregistry
  762.     endif
  763.     endif
  764.  
  765.     goto end
  766.  
  767. ;-----------------------------------------------
  768. ; Upgrade Software section
  769. ;-----------------------------------------------
  770.  
  771. UpgradeSoftware = +
  772.  
  773.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  774.     ; Upgrade software component
  775.     ;
  776.     ; see whether the same version exist or not
  777.     ;
  778.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  779.  
  780.     Ifstr $(KeyProduct) != $(KeyNull)
  781.         GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  782.         set Version = *($(VersionInfo), 4)
  783.  
  784.         ;
  785.         ; Update the binaries
  786.         ;
  787.         Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  788.  
  789.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  790.         goto ShellCodeError
  791.         endif
  792.  
  793.         set !UG_Filename = $($R0)
  794.  
  795.         ifstr(i) $(!UG_Filename) != ""
  796.         install "Install-Update"
  797.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  798.             goto fatal
  799.         endif
  800.         endif
  801.  
  802.         ; Upgrade the version number
  803.         ;
  804.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  805.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  806.  
  807.         ;
  808.         ; do nothing for update
  809.         ;
  810.         ifint $(Version) != $(ProductVersion)
  811.            ;
  812.            ; If the major version number is not the same,
  813.            ; it is major upgrade. So let Upgrade the product
  814.            ;
  815.            ;
  816.            ; make other upgrade change if necessary
  817.            ;
  818.         endif
  819.         CloseRegKey $(KeyProduct)
  820.     else
  821.         ;
  822.         ; Cannot Open software key, goto ERROR
  823.         ;
  824.         goto fatalregistry
  825.     endif
  826.     else
  827.     ;
  828.     ; upgrade/update hardware component
  829.     ; There is no different between upgrade and update for hardware
  830.     ; component
  831.     ;
  832.     ; 1. Get the Service Name
  833.     ; 2. Change the NetRule section if necessary
  834.     ;
  835.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  836.           $(MAXIMUM_ALLOWED) NetworkCardKey
  837.     Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  838.         ;
  839.         ; Get Service name
  840.         ;
  841.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  842.         set ServiceName = *($(ServiceNameInfo), 4)
  843.  
  844.         ;
  845.         ; Change the NetRule if necessary
  846.         ;
  847.         OpenRegKey $(NetworkCardKey) "" "NetRules" +
  848.         $(MAXIMUM_ALLOWED) NetRuleKey
  849.         Ifstr(i) $(NetRuleKey) != $(KeyNull)
  850.         ;
  851.         ; Make the change....
  852.         ;
  853.         else
  854.         ;
  855.         ; Error, cannot open net rules key
  856.         ;
  857.         goto fatalregistry
  858.         endif
  859.  
  860.         CloseRegKey $(NetRules)
  861.         CloseRegKey $(NetworkCardKey)
  862.     else
  863.         ;
  864.         ; Error, cannot open network card key
  865.         ;
  866.         goto fatalregistry
  867.     endif
  868.     ;
  869.     ; 3. Change the service section of the hardware. i.e.,
  870.     ;    ParameterName change, value change, etc.
  871.     ;
  872.     OpenRegKey $(!REG_H_LOCAL) "" +
  873.           $(!NTN_ServiceBase)"\"$(ServiceName) +
  874.           $(MAXIMUM_ALLOWED) ServiceKey
  875.  
  876.     Ifstr(i) $(ServiceKey) != $(KeyNull)
  877.         ;
  878.         ; Get the ServiceKey to change the Start value
  879.         ; or Type value. Or open Parameters key to
  880.         ; change the hardware parameters if necessary.
  881.         ;
  882.         CloseRegKey $(ServiceKey)
  883.     else
  884.         ;
  885.         ; Error, cannot open network card key
  886.         ;
  887.         goto fatalregistry
  888.     endif
  889.     endif
  890.  
  891.     goto end
  892.     ;
  893.     ; End of Upgrade Software
  894.     ;
  895.  
  896. ;
  897. ;  Escape hatches
  898. ;
  899. successful = +
  900.     goto end
  901.  
  902. abandon = +
  903.     ForListDo $(OEM_ABANDON_OPTIONS)
  904.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  905.         $(ProductSoftwareName), $($)
  906.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  907.         goto ShellCodeError
  908.     endif
  909.  
  910.     set RegistryErrorIndex = $($R0)
  911.  
  912.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  913.         goto fatalregistry
  914.     endif
  915.     EndForListDo
  916.  
  917.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  918.     ; Remove Software Component
  919.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  920.         $(ProductSoftwareName), FALSE
  921.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  922.         goto ShellCodeError
  923.     endif
  924.  
  925.     set RegistryErrorIndex = $($R0)
  926.  
  927.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  928.         goto fatalregistry
  929.     endif
  930.     endif
  931.  
  932.     goto end
  933.  
  934. ;
  935. ; warning display
  936. ;
  937. warning = +
  938.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  939.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  940.     goto ShellCodeError
  941.     endif
  942.     ifstr(i) $($R1) == "OK"
  943.     goto $(to)
  944.     else-ifstr(i) $($R1) == "CANCEL"
  945.     goto $(from)
  946.     else
  947.     goto "end"
  948.     endif
  949. ;
  950. ; non fatal error display
  951. ;
  952. nonfatalinfo = +
  953.     Set Severity = STATUS
  954.     Set CommonStatus = STATUS_USERCANCEL
  955.     goto nonfatalmsg
  956. nonfatal = +
  957.     Set Severity = NONFATAL
  958.     goto nonfatalmsg
  959. nonfatalmsg = +
  960.     ifstr(i) $(Error) == ""
  961.     Set Severity = NONFATAL
  962.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  963.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  964.         goto ShellCodeError
  965.     endif
  966.     set Error = $($R0)
  967.     endif
  968.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  969.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  970.     goto ShellCodeError
  971.     endif
  972.     ifstr(i) $($R1) == "OK"
  973.     goto $(from)
  974.     else
  975.     goto "end"
  976.     endif
  977.  
  978. ;
  979. ;  Registry is broken
  980. ;
  981. fatalregistry = +
  982.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  983.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  984.     goto ShellCodeError
  985.     endif
  986.     set Error = $($R0)
  987.     goto fatal
  988. ;
  989. ;  Netcard detection failure
  990. ;
  991. fataldetect = +
  992.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  993.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  994.     goto ShellCodeError
  995.     endif
  996.     set Error = $($R0)
  997.     Goto fatal
  998. ;
  999. ; fatal error display
  1000. ;
  1001. fatal = +
  1002.     ifstr(i) $(Error) == ""
  1003.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1004.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1005.         goto ShellCodeError
  1006.     endif
  1007.     set Error = $($R0)
  1008.     endif
  1009.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1010.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1011.     goto ShellCodeError
  1012.     endif
  1013.  
  1014.     goto setfailed
  1015.  
  1016. ;
  1017. ;  Shelling error
  1018. ;
  1019. ShellCodeError = +
  1020.     set DlgType      = "MessageBox"
  1021.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1022.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  1023.     set STF_MB_TYPE  = 1
  1024.     set STF_MB_ICON  = 3
  1025.     set STF_MB_DEF   = 1
  1026.     ui start "Error Message"
  1027.     goto setfailed
  1028.  
  1029. setfailed = +
  1030.     set CommonStatus = STATUS_FAILED
  1031.     ;
  1032.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1033.     ;
  1034.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1035.     set OEM_ABANDON_ON = FALSE
  1036.     goto abandon
  1037.     endif
  1038.     goto end
  1039.  
  1040. end = +
  1041.     goto term
  1042.  
  1043. term = +
  1044.  
  1045.     Return $(CommonStatus)
  1046.  
  1047. [DebugConfiguration]
  1048.  
  1049.     Set InfName = "OEMsetup.INF"
  1050.  
  1051.     return
  1052.  
  1053.  
  1054. ;***************************************************************
  1055. ;  INSTALL SECTIONS
  1056. ;***************************************************************
  1057. [Install-Option]
  1058.     set STF_VITAL = ""
  1059.  
  1060.     ifstr(i) $(AddCopy) == "YES"
  1061.  
  1062.     ;
  1063.     ; Add the files to the copy list
  1064.     ;
  1065.     ;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
  1066.     ;      the other INF files
  1067.     ;
  1068.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1069.  
  1070.     endif
  1071.  
  1072.     ifstr(i) $(DoCopy) == "YES"
  1073.  
  1074.        ;
  1075.        ; Copy files in the copy list
  1076.        ;
  1077.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1078.        CopyFilesInCopyList
  1079.  
  1080.     endif
  1081.  
  1082.     Exit
  1083.  
  1084. [Install-Update]
  1085.    set STF_VITAL        = ""
  1086.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1087.    ;set STF_VERSION     = "YES"
  1088.  
  1089.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1090.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1091.  
  1092.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1093.    CopyFilesInCopyList
  1094.  
  1095.    exit
  1096.  
  1097. [Install-Dll]
  1098.    set STF_VITAL        = ""
  1099.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1100.    CopyFilesInCopyList
  1101.    exit
  1102.  
  1103. [Source Media Descriptions]
  1104.     1  = "Windows NT Setup Disk #1"
  1105.     2  = "Windows NT Setup CD-ROM Disk"
  1106.     5  = "Cabletron Drivers Disk"
  1107.     99  = "LMHOST disk"
  1108.  
  1109. [ProductType]
  1110. STF_PRODUCT  = Winnt
  1111. STF_PLATFORM = I386
  1112.  
  1113. [Files-Inf]
  1114. 5,      oemsetup.inf,    SIZE=1000,     RENAME=$(!UG_Filename)
  1115.  
  1116. [Files-E22XX]
  1117. 5, E22N3.SYS , SIZE=88888
  1118.  
  1119. [Files-Dll]
  1120. 5, ctrondlg.dll,  SIZE=999
  1121. 5, E22.hlp, SIZE=9999
  1122.  
  1123. [LanguagesSupported]
  1124.     ENG
  1125.  
  1126. [OptionsTextENG]
  1127.     E22XX     = "Cabletron E22XX Ethernet (9000939) Adapter"
  1128.  
  1129. [FileConstantsENG]
  1130. ProCaption   = "Windows NT Setup"
  1131. ProCancel    = "Cancel"
  1132. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1133.            "Are you sure you want to cancel copying files?"
  1134. ProCancelCap = "Network Setup Message"
  1135. ProText1     = "Copying:"
  1136. ProText2     = "To:"
  1137.  
  1138. FunctionTitle   = $(GenericAdapterName)" Card Setup"$(GenericInfVersion)
  1139.  
  1140. ProductSoftwareDescription = $(GenericDriverName)
  1141. ProductHardwareDescription = $(GenericAdapterName)
  1142.  
  1143. ProductSoftwareTitle =       $(GenericDriverName)
  1144. ProductHardwareE22XXTitle =       $(GenericAdapterName)
  1145.  
  1146. DialogDllName   = "ctrondlg.dll"
  1147.  
  1148. IOBaseAddrList1 = ^(IOBaseAddrChoices, 1)
  1149. IOBaseAddrValues1 = ^(IOBaseAddrChoices, 2)
  1150.  
  1151. ;LRW IOBaseAddrList2 = ^(IOBaseAddrChoices, 1)
  1152. ;LRW IOBaseAddrValues2 = ^(IOBaseAddrChoices, 2)
  1153.  
  1154. ;LRW DMAList = ^(DMAChoices, 1)
  1155. ;LRW DMAValues = ^(DMAChoices, 2)
  1156.  
  1157. [DialogConstantsENG]
  1158. Help        = "&Help"
  1159. Exit        = "Cancel"
  1160. OK          = "OK"
  1161. HelpContext = 0
  1162. Continue    = "Continue"
  1163. Cancel      = "Cancel"
  1164.  
  1165. [FileDependentDlgENG]
  1166.  
  1167. DlgText = "Please select values for the following fields:"
  1168.  
  1169. DlgType = "Combination"
  1170. DlgTemplate = "E22XX_SINGLE"
  1171. ;LRW DlgTemplate = "E22XX"
  1172. Caption = $(FunctionTitle)
  1173.  
  1174. CBOptionsGreyed = {}
  1175. NotifyFields = {NO, NO}
  1176. HelpContext = 0
  1177.  
  1178. Edit1Label = "Alt Network &Address:"
  1179. EditTextLim = 17
  1180. EditTextIn = $(NetworkAddress)
  1181.  
  1182. Combo1Label = "I/O Port&1:"
  1183. ;LRW Combo2Label = "I/O Port&2:"
  1184. ;LRW Combo3Label = "&DMA Channel:"
  1185.  
  1186. Combo1List = $(IOBaseAddrList1)
  1187. Combo1Out  = $(IOBaseAddrValue1)
  1188.  
  1189. ;LRW Combo2List = $(IOBaseAddrList2)
  1190. ;LRW Combo2Out  = $(IOBaseAddrValue2)
  1191.  
  1192. ;LRW Combo3List = $(DMAList)
  1193. ;LRW Combo3Out = $(DMAValue)
  1194.  
  1195. ;LRW ComboListItemsIn  = {Combo1List, Combo2List, Combo3List}
  1196. ComboListItemsIn  = {Combo1List}
  1197.  
  1198. ;LRW ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
  1199. ComboListItemsOut = {Combo1Out}
  1200.  
  1201. ;EditTextIn = {"",""}
  1202.  
  1203. ;EditTextLim = {"",""}
  1204.  
  1205. [IOBaseAddrChoices]
  1206. IOBase_1  = "0x200",512
  1207. IOBase_2  = "0x220",544
  1208. IOBase_3  = "0x240",576
  1209. IOBase_4  = "0x260",608
  1210. IOBase_5  = "0x280",640
  1211. IOBase_6  = "0x2A0",672
  1212. IOBase_7  = "0x2C0",704
  1213. IOBase_8  = "0x2E0",736
  1214. IOBase_9  = "0x300",768
  1215. IOBase_10  = "0x320",800
  1216. IOBase_11  = "0x340",832
  1217. IOBase_12  = "0x360",864
  1218. IOBase_13  = "0x380",896
  1219. IOBase_14  = "0x3A0",928
  1220. IOBase_15  = "0x3C0",960
  1221.  
  1222. [DMAChoices]
  1223. DMA_1 = "5",5
  1224. DMA_2 = "6",6
  1225. DMA_3 = "7",7
  1226. DMA_4 = "3",3
  1227.